Method and system for displaying geographic information

ABSTRACT

This application is directed to a geographic information display method. While a first mobile device is executing an instant messaging application, it obtains its own geographic location information, a second mobile device&#39;s geographic location information, and a first timestamp at which the geographic location information is recorded. The first mobile device then displays an interactive map associated with the first timestamp on a user interface. The displayed map includes two marks that represent the locations of the first and second mobile devices, respectively, and instant messages exchanged between these two mobile devices are displayed on the map adjacent to the two marks. As the first mobile device obtains updated geographic location information in association with a second timestamp, it updates the location of the second mobile device while the mark corresponding to the first mobile device remains at the same location on the user interface.

RELATED APPLICATION

This application is a continuation application of U.S. patentapplication Ser. No. 15/210,499, entitled “METHOD AND SYSTEM FORDISPLAYING GEOGRAPHIC INFORMATION” filed on Jul. 14, 2016, which is acontinuation application of PCT Patent Application No.PCT/CN2015/070169, entitled “METHOD AND SYSTEM FOR DISPLAYING GEOGRAPHICINFORMATION” filed on Jan. 6, 2015, which claims priority to ChinesePatent Application No. 201410033756.6, entitled “METHOD AND APPARATUSFOR DISPLAYING GEOGRAPHIC INFORMATION” filed on Jan. 24, 2014, all ofwhich are incorporated by reference in their entirety.

TECHNICAL FIELD

The disclosed implementations relate generally to informationtechnology, and in particular, to methods and systems for displayinggeographic location information on a user interface of a mobile device.

BACKGROUND

Map applications are developed and used to provide navigation functions.Prior to and during the course of navigation, a user oftentimes performscertain user actions on a displayed map to obtain route information(e.g., remaining distance, turns, traffic conditions, and locations ofrest areas). Therefore, there is a need to render the map in a more userfriendly manner, and specifically, the map is preferably displayed withmany interested information items and improved overall effects tosatisfy various users' navigation needs.

Global Positioning System (GPS) technology is applied to identify aposition of a mobile device. A map application is further used todisplay a map on a user interface of the mobile device, and mark theposition of the mobile device as a circle or a bubble on the map. As theposition varies with movement of the mobile device, a user of the mobiledevice could choose to preview the route ahead. Specifically, the mobiledevice detects a user action (e.g., a swipe) on the map displayed on theuser interface, and thereby, adjusts the displayed area of the map onthe user interface to allow the user to preview interested part of themap. Accordingly, the marked position of the mobile device shifts withthe variation of the displayed area of the map, and sometimes, wouldmove out of the displayed area. The user experience could be comprisedas the marked position of the mobile device is not displayed on themobile device. Based on this specific example, a need exists toaccommodate both information previewing and position displaying on theuser interface, such that better user experiences could be rendered forthe map application on the mobile device.

SUMMARY

The above deficiencies and other problems associated with theconventional approaches for displaying geographic information arereduced or eliminated by the application disclosed below. In someembodiments, the application is implemented in a mobile device that hasone or more processors, memory and one or more modules, programs or setsof instructions stored in the memory for performing multiple functions.Instructions for performing these functions may be included in acomputer program product configured for execution by one or moreprocessors.

One aspect of the application is a geographic information display methodimplemented at a first mobile device having one or more processors andmemory storing programs for execution by the processors. The geographicinformation display method includes while executing an instant messagingapplication, obtaining first geographic location information of thefirst mobile device associated with a first user, second geographiclocation information of a second mobile device associated with a seconduser, and a first timestamp at which both the first and secondgeographic location information is recorded. The geographic informationdisplay method further includes displaying a map associated with thefirst timestamp. The map includes a first mark corresponding to thefirst mobile device at a first location defined by the first geographiclocation information and a second mark corresponding to the secondmobile device at a second location defined by the second geographiclocation information, respectively. Instant messages exchanged betweenthe first and second users are displayed on the map adjacent to thefirst and second marks, respectively. The geographic information displaymethod further includes obtaining updated geographic locationinformation of the first mobile device and the second mobile device, anda second timestamp at which the updated geographic location informationis recorded. The method further includes updating the displayed map onthe user interface to reflect variations of the geographic locations ofthe first and second mobile devices. The first mark corresponding to thefirst mobile device is at a fixed location on the user interface, andthe second mark corresponding to the second mobile device is updated onthe displayed map according to the updated geographic locationinformation of the second mobile device.

Another aspect of the application is a mobile device that includes oneor more processors, and memory having instructions stored thereon, whichwhen executed by the one or more processors cause the processors toperform operations to implement the above method for displayinggeographic information on a user interface associated with an instantmessaging application that is implemented on the mobile device.

Another aspect of the application is a non-transitory computer-readablemedium, having instructions stored thereon, which when executed by oneor more processors cause the processors to perform operations toimplement the above methods for displaying geographic information on auser interface associated with an instant messaging application that isimplemented on the mobile device.

Various advantages of the present application would be apparent in lightof the descriptions below.

BRIEF DESCRIPTION OF DRAWINGS

The aforementioned implementation of the invention as well as additionalimplementations will be more clearly understood as a result of thefollowing detailed description of the various aspects of the inventionwhen taken in conjunction with the drawings. Like reference numeralsrefer to corresponding parts throughout the several views of thedrawings.

In order to more clearly describe the technical scheme of the embodimentof the present application, a brief introduction will be made to theaccompanying drawings depicted in the description of the embodiments.Obviously, the accompanying drawings depicted below are only some of theembodiments of the present application. The ordinary skilled in the artwill obtain other accompanying drawings according to these without theuse of the creative effort.

FIG. 1 is a flow chart of an exemplary geographic information displaymethod in accordance with some embodiments.

FIG. 2 is a flow chart of another exemplary geographic informationdisplay method in accordance with some embodiments.

FIGS. 3A and 3B are exemplary user interfaces that display a map beforeand after adjustment of a displayed area in accordance with someembodiments, respectively.

FIGS. 4A and 4B are exemplary user interfaces that are associated withan instant messaging application and display a map before and afteradjustment of a displayed area in accordance with some embodiments,respectively.

FIG. 5 is a block diagram of an exemplary geographic information displaymodule in accordance with some embodiments.

FIG. 6 is a block diagram of an exemplary mobile device that displaysgeographic information in accordance with some embodiments.

FIG. 7 is a flow chart of an exemplary geographic information displaymethod that displays geographic information in an instant messagingapplication in accordance with some embodiments.

The present application will be further described in detail by means ofembodiments with reference to the drawings, in order to make theimplementation, features and advantages of the present application moreclear.

DETAILED DESCRIPTION

In order to make the objects, technical schemes and advantages of thepresent application more clear and apparent, embodiments of the presentapplication will now be described in further detail with reference toaccompanying drawings.

In accordance with various embodiments of the application, a geographicinformation display method is implemented at a mobile device (e.g., afirst mobile device). The mobile device obtains first geographiclocation information and a first timestamp. The first geographiclocation information is associated with a first geographic locationwhere the mobile device is located at a first time indicated by thefirst timestamp. The mobile device executes a geographic positioningapplication for displaying on a user interface a map associated with thefirst timestamp. The first geographic position of the mobile device ismarked on the displayed map according to the first geographic locationinformation. Then, the mobile device obtains second geographic locationinformation and a second timestamp. The second geographic locationinformation is associated with a second geographic location where themobile device is located at a second time indicated by the secondtimestamp. The mobile device calculates an average speed of the mobiledevice based on the first and second geographic location information,and the first and second timestamps. In accordance with a determinationthat the average speed is higher than a threshold speed, the mobiledevice updates the displayed map on the user interface to reflect avariation of the geographic location of the mobile device, wherein thefirst and second geographic positions of the user are marked on a fixedlocation on the user interface.

In some implementations, the mobile device determines whether the userof the mobile device is browsing the displayed map (e.g., previewingroute information). Further, in accordance with a determination that theuser is browsing the displayed map, the displayed map is zoomed out toinclude both the geographic location of the mobile device and browsedmap area on the same user interface. In this situation, the geographiclocation of the user is still marked on the fixed location of the userinterface. However, in some implementations, the mobile devicedetermines that the user of the mobile device is browsing the displayedmap, and accordingly, forgoes updating the displayed map.

In some implementations, the geographic information display method isimplemented on a social network platform (e.g., on an instant messagingapplication). A user logs onto a user account associated with the socialnetwork platform while the user is travelling between two locations andneeds navigation service. A geographic display function is integratedinto the social network platform. As a result of using the geographicdisplay method in this application, a map is rendered to provide abetter display effect based on the social network platform and therebyimproves user experience with both social networking and navigation.

In some implementations, the geographic information display methodfurther displaying and updating on the displayed map a geographiclocation of another mobile device (e.g., a second mobile device)controlled by another user. However, the geographic location of thesecond mobile device is not fixed. Specifically, the geographic locationof the second mobile device is marked on the user interface according tothe variation of the displayed map. Further, in some implementations,the users of the first and second mobile device are associated with eachother on a social network application that displays the map on its userinterface according to the geographic information method disclosedherein. In addition to displaying the geographic locations of the mobiledevices, the social network application also displays other conversationinformation (e.g., text messages or links to voice messages) on the map,and specifically next to the marks representing the users of the mobiledevices on the user interface.

FIG. 1 is a flow chart of an exemplary geographic information displaymethod 100 in accordance with some embodiments. Method 100 is,optionally, governed by instructions that are stored in a non-transitorycomputer readable storage medium and that are executed by one or moreprocessors of a mobile device (e.g., a global positioning system (GPS)device, a smart phone, a personal digital assistant (PDA), a tablet anda laptop computer). Each of the operations shown in FIG. 1 maycorrespond to instructions stored in a computer memory or non-transitorycomputer readable storage medium. The computer readable storage mediummay include a magnetic or optical disk storage device, solid statestorage devices such as Flash memory, or other non-volatile memorydevice or devices. The instructions stored on the computer readablestorage medium may include one or more of: source code, assemblylanguage code, object code, or other instruction format that isinterpreted by one or more processors. Some operations in method 100 maybe combined and/or the order of some operations may be changed.

The mobile device obtains (101) positioning time and positioning data ofeach positioning period of the mobile device. The positioning time isassociated with a timestamp, and the positioning data include geographiclocation information of the mobile device at the positioning time. Insome implementations, a mobile device includes a GPS module thatcaptures the positioning data of the mobile device regularly (e.g., oncein each predetermined positioning period). The mobile device therebycaptures a plurality of positioning data items each associated with onepositioning time and one positioning period. In some implementations,the mobile device displays a user interface that includes a map. Aportion of the map is displayed on the user interface, and geographiclocations of the mobile device are marked and updated on the displayedarea of the map according to the positioning time and the positioningdata.

The mobile device then calculates (102) an average speed between thepositioning time of a previous positioning period and the positioningtime of the current positioning period according to the positioning timeand the positioning data of the previous positioning period as well asthe positioning time and the positioning data of the current positioningperiod. Stated another way, the mobile device tracks the average speedby calculating geographic location information associated with twodistinct instants associated with two timestamps. In some situations,these two distinct instants are two sequential position measurementtimes of the GPS.

Further, in accordance with a determination that the average speed isgreater than a threshold speed, the mobile device adjusts (103) thedisplayed area of the map displayed on the user interface according tothe positioning data of the mobile device at the positioning time,thereby keeping the marked position of the mobile device on the userinterface remains substantially unchanged.

The mobile device then displays (104) the map on the user interface. Themap includes the adjusted displayed area and is marked with geographiclocation of the mobile device.

According to the method provided by the embodiment, after thepositioning time and the positioning data of each positioning period ofthe mobile device are acquired, the average speed between thepositioning time of the previous positioning period and the positioningtime of the current positioning period is calculated according to thepositioning time and the positioning data of the previous positioningperiod as well as the positioning time and the positioning data of thecurrent positioning period. And when the average speed is greater thanthe threshold speed, the map displayed area is adjusted according to thepositioning data of the mobile device so as to keep the display positionof the corresponding user identification of the mobile device on theuser interface unchanged. Since the display position of the useridentification is locked, the map displayed area can be adjusted withoutchanging the display position of the user identification, therebyoptimizing the display effect of the map.

In some embodiments, geographic information display method 100 furtherincludes: prior to obtaining the positioning time and the positioningdata of each positioning period of the mobile device, identifyinggeographic locations of the mobile device at a plurality of positioningperiods by obtaining the positioning data and the positioning timeassociated with each of the positioning periods. In some embodiments,the positioning data include longitude and latitude data, i.e.,geographic coordinates that specifies the east-west and south-northpositions of the corresponding geographic location on the Earth'ssurface.

In some embodiments, operation 102 (i.e., calculating the average speedbetween the positioning time of the previous positioning period and thepositioning time of the current positioning period of the mobile deviceaccording to the positioning time and the positioning data of theprevious positioning period as well as the positioning time and thepositioning data of the current positioning period) further includes:

-   -   calculating displacement of the mobile device according to the        positioning data of the current positioning period and the        positioning data of the previous positioning period;    -   calculating the time difference between the positioning time of        the current positioning period and the positioning time of the        previous positioning period; and    -   calculating the average speed between the positioning time of        the previous positioning period and the positioning time of the        current positioning period of the mobile device according to the        displacement and the time difference.

In some embodiments, prior to adjustment of the displayed area of themap according to the positioning data, the mobile device determineswhether a user identification is labeled on the map on the userinterface to indicate the geographic location of the mobile device. Insome situations, the displayed area of the map is adjusted according tothe positioning data of the mobile device, only when it is determinedthat the user identification is labeled on the map displayed on the userinterface,

In some embodiments, prior to adjustment of the displayed area of themap according to the positioning data, the mobile device determineswhether the user is controlling the user interface to verify thegeographic information displayed on the map. This situation occurs whenthe user is reviewing the map and the geographic information. The map ispreferably not updated to allow the user to complete the ongoing reviewactivity. In accordance with a determination that the user is notcontrolling the user interface to verify the geographic informationdisplayed on the map, the mobile device performs operations 103 and 104in which the displayed area of the map is adjusted and according to thepositioning data and displayed on the user interface of the mobiledevice.

In some embodiments, the mobile device adjusts the displayed area of themap on the user interface based on a central point of the userinterface. Specifically, operation 103 of adjusting the displayed areaof the map further includes:

-   -   calculating coordinate offset values on the user interface for        two geographic locations where the mobile device are located at        a previous instant and a current instant, wherein the two        geographic locations are associated with current positioning        data and previous positioning data obtained at the previous and        current instants, respectively, and these positioning data are        used to calculate the coordinate offset values on the user        interface;    -   obtaining coordinate values and coordinate offset values of a        current central point displayed on the user interface at the        current instant, and identifying where the subsequent central        point associated with a subsequent instant is located on the        user interface that is currently displayed, wherein the mobile        device calculates coordinate values of the subsequent central        point on the map that is currently displayed on the user        interface; and    -   using the subsequent central point of the displayed area as a        reference point, and moving the current displayed area of the        map according to the coordinate offset values of the current        central point, until the location associated with the subsequent        central point coincides with the central point of the user        interface.

Any combination of all the above-mentioned optional technical schemesmay be employed to form alternative embodiments of the presentapplication, and thus will not be discussed in further detail here.

It should be understood that the particular order in which theoperations in FIG. 1 have been described are merely exemplary and arenot intended to indicate that the described order is the only order inwhich the operations could be performed. One of ordinary skill in theart would recognize various ways to displaying the geographicinformation of the mobile device as described herein. Additionally, itshould be noted that details of other processes described below withrespect to methods 200 and 700 (e.g., FIGS. 2 and 7) are also applicablein an analogous manner to method 100 described above with respect toFIG. 1. For brevity, these details are not repeated here.

FIG. 2 is a flow chart of another exemplary geographic informationdisplay method 200 in accordance with some embodiments. Method 200 is,optionally, governed by instructions that are stored in a non-transitorycomputer readable storage medium and that are executed by one or moreprocessors of a mobile device (e.g., a global positioning system (GPS)device, a smart phone, a personal digital assistant (PDA), a tablet anda laptop computer). Each of the operations shown in FIG. 2 maycorrespond to instructions stored in a computer memory or non-transitorycomputer readable storage medium. The computer readable storage mediummay include a magnetic or optical disk storage device, solid statestorage devices such as Flash memory, or other non-volatile memorydevice or devices. The instructions stored on the computer readablestorage medium may include one or more of: source code, assemblylanguage code, object code, or other instruction format that isinterpreted by one or more processors. Some operations in method 200 maybe combined and/or the order of some operations may be changed.

In accordance with some embodiments of geographic information displaymethod 200, the mobile device identifies (201) geographic locations ofthe mobile device at a plurality of positioning periods by obtaining thepositioning data and the positioning time associated with each of thepositioning periods. In some embodiments, the positioning data includelongitude and latitude data at the respective positioning timeassociated with each of the positioning periods. In a specific example,each positioning period lasts for 0.5, 1 or 1.5 second.

Optionally, the geographic locations of the mobile device are identifiedbased on GPS positioning technology. Optionally, the geographiclocations of the mobile device are identified according to its relativelocations within a network. Optionally, the geographic locations of themobile device are identified with reference to base station locations ina cellular network.

In some embodiments, the positioning data (i.e., geographic locationinformation) includes the longitude and the latitude data of thecorresponding geographic locations of the mobile device. That is, ateach positioning time, the mobile device obtains a pair of coordinatevalues (e.g., a longitude value and a latitude value). Alternatively, insome implementations, the positioning data further include informationconcerning positioning accuracy. Further, in some embodiments, at eachpositioning time, the mobile device obtains a timestamp associated withthe positioning time when it obtains the longitude and latitude values.After the mobile device is positioned each time, the positioning dataand the positioning time are then stored in a storage medium of themobile device, and the storage medium includes a memory, a flash memoryor a hard disk and the like.

It is noted that after obtaining the positioning data and thepositioning times, the mobile device updates the displayed map accordingto the positioning data during each of the positioning periods. Moredetails are explained below with reference to operations 202-206 ofgeographic information display method 200.

The mobile device obtains (202) the positioning time and the positioningdata of each positioning period. In some embodiments, the positioningtime and the positioning data of each positioning period of the mobiledevice are obtained directly from the storage medium of the mobiledevice. In a specific example, the storage medium of the mobile deviceincludes a memory, then the positioning time and the positioning data ofeach positioning period of the mobile device are obtained directly fromthe memory of the mobile device.

After obtaining the positioning time and data, the mobile devicecalculates (203) an average speed between the positioning time of aprevious positioning period and the positioning time of a currentpositioning period of the mobile device according to the positioningtime and the positioning data of the previous positioning period as wellas the positioning time and the positioning data of the currentpositioning period. In some embodiments, the following steps203(a)-203(c) are implemented to calculate the average speed between thepositioning time of the previous positioning period and the positioningtime of the current positioning period according to the positioning timeand the positioning data of the previous positioning period as well asthe positioning time and the positioning data of the current positioningperiod.

At Step 203(a), the mobile device calculates a displacement of themobile device according to the positioning data of the currentpositioning period and the positioning data of the previous positioningperiod.

The primary unit in which longitude and latitude are given is degrees(°). There are 360° of longitude (180° E↔180° W) and 180° of latitude(90° N↔90° S). Each degree can be broken into 60 minutes (′). Eachminute can be divided into 60 seconds (″). For finer accuracy, fractionsof seconds given by a decimal point are used. The meridian of the earthhas a total length of approximately 40008 km. One degree of latitude isapproximately associated with a distance of 111 km on average; oneminute of latitude is approximately associated with a distance of 1.85km; one second of latitude is approximately associated with a distanceof 30.9 m. Suppose that the earth is a perfect sphere whose radius isthe mean radius of the earth (R). The zero-degree longitude line isregarded as a reference line. The distance between any two points on theearth's surface could be calculated according to the longitude data andthe latitude data of the two points.

In some embodiments, a position A is associated with the positioningdata of the current positioning period, and the positioning dataincludes a longitude value longA and a latitude value latA. A position Ais associated with the positioning data of the previous positioningperiod, and the positioning data includes a longitude value longB and alatitude value latB. When the zero-degree longitude line is regarded asa reference line, the longitude values on the eastern sphere isassociated with positive values (e.g., + longitude), while the longitudevalues on the western sphere is associated with negative values (e.g., −longitude). The latitude values on the northern and southern spheres arerepresented as (90− latitude) and (90+ latitude), respectively, wherethe parameter latitude is a positive number between 0 and 90. Then, thecoordinate values of positions A and B are represented by (MlongA,MlatA) and (MlongB, MlatB) on the earth coordinate system. Thedisplacement D between the two points of point A and point B iscalculated as follows:DistanceD=R*Arccos(C)*Pi/180  (1)C=sin(MlatA)*sin(MlatB)*cos(MlongA−MlongB)+cos(MlatA)*cos(MlatB)  (2)wherein R and D have the same unit (e.g., kilometer).

It is noted that the above embodiments based on the earth coordinatesystem is only one exemplary method for calculating the displacement ofthe mobile device, and other calculation methods could also be used tocalculate the displacement of the mobile device according to thepositioning data.

At Step 203(b), the mobile device further calculates the time differencebetween the positioning time of the current positioning period and thepositioning time of the previous positioning period.

At Step 203(c), the mobile device further calculates the average speedbetween the positioning time of the previous positioning period and thepositioning time of the current positioning period of the mobile deviceaccording to the displacement and the time difference.

In some implementations, the time difference is ΔT. As obtained at step203(a), the displacement between the positioning time of the previouspositioning period and the positioning time of the current positioningperiod of the mobile device is Distance (D). Therefore, the averagespeed V is represented by: V=Distance/ΔT.

In some embodiments, at Step 204, the mobile device determines whether auser identification associated with a user of the mobile device ismarked on the user interface when the average speed is greater than thethreshold speed; and executing step 205 when it is determined that theuser identification is marked on the user interface. In a specificexample, the threshold speed is predetermined as 15 kilometers/hour. Thethreshold speed is optionally equal to other values, e.g., 10kilometers/hour and 20 kilometers/hour, and this application has nospecific limitation thereon.

In some situations, at a specific instant of navigation, the user isperforming a user action (e.g., a swipe by a finger) on the userinterface for the purposes of previewing a route or checking informationrelated to a route. To facilitate previewing the route and checking therelated information, the mobile device could move the useridentification out of the displayed area of the map, e.g., display anarea of the map that is not marked with the user identification or loadan information page in front of the map. In these situations, when it isdetermined that the user identification is not displayed on the userinterface at the specific instant of navigation, the position of theuser identification does not need to be locked on the user interface toupdate the geographic information of the mobile device.

In the above situations, the user identification is typically marked asa unique pictorial item, e.g., a round or a bubble-like icon. The mobiledevice determines whether the user identification is marked on the userinterface by checking whether a round or bubble-like icon is present onthe user interface. If present, it is determined that the useridentification is displayed on the user interface, and the followingstep 205 is performed. If it is determined that the user identificationis not marked on the user interface, the mobile device forgoes updatingthe geographic information of the mobile device on the user interfaceand terminates the process of displaying geographic locations.

In some embodiments, at step 205, the mobile device determines whetherthe user is previewing the route information, and in accordance with adetermination that the mobile device is not previewing the routeinformation, adjusts the displayed area of the map according to thepositioning data of the mobile device. The display position ofcorresponding user identification of the mobile device remains unchangedon the user interface. For example, the user identification isconsistently marked at the center of the user interface (i.e., thecenter of the screen of the mobile device), when the user is notpreviewing the route information.

In some embodiments, if it is determined that the user identification isdisplayed on the user interface according to the above step 204, thereis also a need to further determine whether the user is previewing theroute information. Route preview is often associated with a user action,e.g., a swipe by a user finger on the user interface, to adjust thedisplayed area of the map on the user interface. When the user performsthe exemplary swipe operation on the mobile device, a thermosensitiveelement or a sensor of the screen of the mobile device detects thecontact of the user finger thereon. The mobile device analyzes thecontact signal and determines whether the user is previewing the routeinformation. If the user is not previewing the route information, theuser is not previewing the route information, and the position of theuser identification is locked on the user interface.

In some implementations, a normal travelling mode includes a previewmode in which the user of the mobile device previews the routeinformation of a trip, and a driving mode is activated while the user isdriving and does not operate on the mobile device. During navigation, anormal traveling mode could switch to a driving mode. After switching tothe driving mode, no matter how the position of the user changes, thedisplay position of the user identification remains unchanged on theuser interface. In some implementations, in the driving mode, the userchanges the displayed area of the map through a user action on the userinterface, and thereby view more map information about the road ahead.During this course, the map is zoomed out while the user identificationis marked on the displayed map and stays on the same location on theuser interface (e.g., the center of the screen). However, when the useractivates the preview mode to preview the route information, the mobiledevice forgoes displaying the user identification on the same locationof the user interface.

In some embodiments, the mobile device adjusts (205) the displayed areaof the map according to the positioning data of the mobile device by thefollowing sub-steps of 205(a)-205(c).

At sub-step 205(a), the mobile device calculates coordinate offsetvalues on the user interface for two geographic locations where themobile device are located at a previous instant and a current instant,wherein the two geographic locations are associated with currentpositioning data and previous positioning data obtained at the previousand current instants, respectively, and these positioning data are usedto calculate the coordinate offset values on the user interface;

During the continuous change of the position of the mobile device, apixel displacement of the user identification on the user interfacewithin a positioning period may be calculated according to the actualgeographic displacement of the mobile device within a positioningperiod. The actual geographic displacement is in direct proportion tothe pixel displacement. The coordinate offset value for the useridentification that represents the user on the user interface isassociated with the pixel displacement of the user identification on theuser interface. After the geographic displacement of the mobile devicewithin the current positioning period is calculated according to thepositioning data at the previous and current instants, the coordinateoffset value on the user interface is obtained according to acorrelation between the actual geographic displacement and the pixeldisplacement.

At sub-step 205(b), the mobile device obtains coordinate values andcoordinate offset values of a current central point displayed on theuser interface at the current instant, and identifying where thesubsequent central point associated with a subsequent instant is locatedon the user interface that is currently displayed, wherein the mobiledevice calculates coordinate values of the subsequent central point onthe map that is currently displayed on the user interface.

In a specific example, coordinate values of a current position are (x1,y1) at a current instant, and coordinate value of a previous positionare (x2, y2) at a previous instant. The coordinate offset values arerepresented by (Δx, Δy) which are therefore equal to (x2-x1, y2-y1).Further, coordinate values are (x3, y3) for the central point of thedisplayed area of the map at the current instant, and changes to (x4,y4) for the central point at the subsequent instant. Assume coordinatevalues of (x3, y3) and (x4, y4) have the same coordinate offset valuesof coordinate values (x1, y1) and (x2, y2). Thus, coordinate values (x4,y4) is equal to (x3+Δx, y3+Δy).

At sub-step 205(c), the mobile device uses the subsequent central pointof the displayed area as a reference point, and moves the currentdisplayed area of the map according to the coordinate offset values ofthe current central point, until the location associated with thesubsequent central point coincides with the central point of the userinterface.

FIGS. 3A and 3B are exemplary user interfaces that display a map beforeand after adjustment of a displayed area in accordance with someembodiments, respectively. The central point is point A on the displayedarea of the map displayed at a current instant, and point B on thecurrently displayed map will be moved to the central point for displayon the user interface at a subsequent instant. Thus, during the courseof adjusting the displayed area of the map, central point B will be usedas a reference point, and the displayed area is moved by the coordinateoffset value (Δx, Δy) until the point B is moved to the central point ofthe user interface. As shown in FIG. 3A, before the displayed area ofthe map is moved, point A is located at the geometric center point ofthe user interface, and after the displayed area is adjusted accordingto the coordinate offset value, point B becomes the geometric centerpoint of the user interface. The adjusted map displayed area is shown inFIG. 3B. While in FIGS. 3A and 3B, the corresponding user identificationof the mobile device is always located at the same position of the userinterface. That is, the position of the user identification on the userinterface is locked. For example, the position of the useridentification is locked on the center of the top half screen of theuser interface.

In some implementations, the mobile device does not determines whether auser identification associated with a user of the mobile device ismarked on the user interface when the average speed is greater than thethreshold speed as in operation 204. Alternatively, in someimplementations, the mobile device does not determine whether the useris previewing the route information as in part of operation 205. Rather,in some implementations, after determining that the average speed isgreater than the threshold speed, the mobile device locks the positionof the user identification displayed on the user interface, and adjuststhe displayed area of the map according to the position data of themobile device as in part of operation 205.

Further, at step 206, the mobile device displays part of the map on theuser interface.

In various embodiments of the present application, the useridentification is locked at a fixed position on the user interface. Thefixed position could be any position on the user interface. In someimplementations, after the position of the user identification islocked, the user is detected to perform a finger swipe operation topreview the route information, and the map area is adjusted withoutchanging the display position of the user identification on the userinterface. Specifically, to fix the location of the user identificationmarked on the user interface, the mobile device zooms out the map todisplay both the user identification and the route information. As such,such a geographic information display method could improve the displayeffect of the map by displaying the geographic location of the mobiledevice while enabling preview of the route information.

In summary, in various embodiments of the present application, themobile device obtains the positioning time and the positioning data ofeach positioning period of the mobile device, and then calculates theaverage speed between the positioning time of the previous positioningperiod and the positioning time of the current positioning periodaccording to the positioning time and data associated with the previouspositioning period, and the positioning time and data associated withthe current positioning period. When the average speed is greater than athreshold speed, the mobile device adjusts the displayed area of the mapon the user interface according to the positioning data of the mobiledevice. Specifically, the mobile device fixes, on the user interface,the position of the corresponding user identification of the mobiledevice. As such, the displayed area of the map is adjusted withoutchanging the display position of the user identification, therebyoptimizing display effect of the map. Stated another way, the displayedarea of the map is optionally shifted, zoomed in, or zoomed out withreference to the location of the mobile device.

It should be understood that the particular order in which theoperations in FIG. 2 have been described are merely exemplary and arenot intended to indicate that the described order is the only order inwhich the operations could be performed. One of ordinary skill in theart would recognize various ways to displaying the geographicinformation of the mobile device as described herein. Additionally, itshould be noted that details of other processes described elsewhere withrespect to methods 100 and 700 (e.g., FIGS. 1 and 7) are also applicablein an analogous manner to method 100 described above with respect toFIG. 2. For brevity, these details are not repeated here.

FIGS. 4A and 4B are exemplary user interfaces that are associated withan instant messaging application and display a map before and afteradjustment of a displayed area in accordance with some embodiments,respectively. In some implementations, geographic information isdisplayed on a map that is loaded on a social media application (e.g.,an instant messaging application). In response to a user action (e.g., auser selection of a navigation mode by a first user, user A), anavigation map 402 is loaded on the instant messaging application. Theaforementioned geographic information display methods (e.g., methods 100and 200) are implemented to display a user identification associatedwith user A on the navigation map 402. In accordance with methods 100and 200, the location of the user identification of user A is fixed onthe user interface, while the displayed area of the map is updated toreflect the geographic information of the mobile device and user A onthe real time.

In some implementations, the displayed area of map 402 further includesanother user identification associated with a distinct user, user B.Users A and B are related to each other in the instant messagingapplication. For example, in WeChat, users A and B recognize each otheras friends. As such, the geographic information of user B are alsoobtained by the mobile device associated with user A, and used to markthe geographic location of user B on the map 402 that is displayed touser A. However, the location of the user identification associated withuser B is not fixed on the user interface.

Further, while displaying the geographic locations of users A and B, theuser interface is configured to display message information associatedwith the instant messages exchanged between these two users. Forexample, users A and B have a conversation concerning this trip, e.g.,inquiring about each other's status, traffic conditions and otherparties' statuses. The message information is displayed next to the useridentification that initiates the corresponding instant message. Forexample, prior to the adjustment of the displayed area of the map, atext box 402 is displayed next to the user identification associatedwith user A, and includes a text message inquiring “Where are your”?User B responds with a voice message represented by a voice message item406. Optionally, the voice message is played automatically during thenavigation or upon receiving a user click.

As shown in FIGS. 4A and 4B, the user interface integrates bothfunctions of instant messaging and geographic navigation. The mobiledevice is enabled to guide its own navigation, monitor its ownnavigation status, and track another party's navigation status, whilemaintain real time communication with the other party.

FIG. 5 is a block diagram of an exemplary geographic information displaymodule 500 in accordance with some embodiments. Geographic informationdisplay module 500 includes a positioning information acquisition module501, an average speed calculation module 502, a map displayed areaadjustment module 503 and a display module 504.

Positioning information acquisition module 501 is configured to obtainthe positioning time and the positioning data of each positioning periodof the mobile device Average speed calculation module 502 is coupled topositioning information acquisition module 501, and configured tocalculate the average speed between the positioning time of the previouspositioning period and the positioning time of the current positioningperiod according to the positioning time and data of the previouspositioning period as well as the positioning time and data of thecurrent positioning period. Map displayed area adjustment module 503 iscoupled to average speed calculation module 502, and configured toadjust the displayed area of the map displayed on the user interfaceaccording to the positioning data of the mobile device when the averagespeed is greater than a threshold speed. As explained above, thedisplayed area of the map is adjusted while a user identificationrepresenting the mobile device is fixed at a predetermined position onthe user interface. Display module 504 is coupled to map displayed areaadjustment module 503, and configured to display the map including itsadjusted displayed area on the user interface.

In some embodiments, geographic information display module 500 furtherincludes:

-   -   a mobile device positioning module for positioning the mobile        device during each positioning period to obtain the positioning        data of each positioning period of the mobile device, wherein        the positioning data includes the longitude and the latitude        data associated with the mobile device; and    -   a time recording module for recording the positioning time at        which the mobile device is positioned.

In some embodiments, the average speed calculation module comprises:

-   -   a displacement calculation unit for calculating the displacement        of the mobile device according to the positioning data of the        current positioning period and the positioning data of the        previous positioning period;    -   a time difference calculation unit for calculating the time        difference between the positioning time of the current        positioning period and the positioning time of the previous        positioning period; and    -   an average speed calculation unit for calculating the average        speed between the positioning time of the previous positioning        period and the positioning time of the current positioning        period of the mobile device according to the displacement and        the time difference.

In some embodiments, geographic information display module 500 furtherincludes:

-   -   a determination module for determining whether the user        identification is displayed on the user interface; and    -   a map displayed area adjustment module for adjusting the        displayed area of the map according to the positioning data of        the mobile device when it is determined that the user        identification is marked on the user interface.

In some embodiments, geographic information display module 500 furtherincludes:

-   -   a detection module for detecting whether the user is performing        the determining operation for the map information to be        displayed; and    -   a map displayed area adjustment module for performing the step        of adjusting the map displayed area according to the positioning        data of the mobile device when detecting that the user is not        performing the determining operation for the map information to        be displayed.

In some embodiments, the above map displayed area adjustment modulecomprises:

-   -   a position coordinate calculation unit for calculating the        coordinate offset value of corresponding user identification of        the mobile device on the user interface according to the current        positioning data and the last positioning data of the mobile        device; and calculating the coordinate value of the position of        the central point of the map displayed area to be displayed        according to the coordinate value of the position of the central        point of the current map displayed area and the coordinate        offset value; and    -   a map displayed area adjustment unit for moving the current map        displayed area according to the coordinate offset value by using        the central point of the map displayed area to be displayed as a        reference point, until the position coordinates of the central        point of the displayed area to be displayed coincide with the        position coordinates of the central point of the current map        displayed area to obtain the adjusted map displayed area.

In accordance with various embodiments of the present application,geographic information display module 500 obtains the positioning timeand the positioning data of each positioning period of the mobiledevice, and thereby calculates the average speed between the positioningtime of the previous positioning period (i.e., a previous instant) andthe positioning time of the current positioning period (i.e., a currentinstant). And when the average speed is greater than the thresholdspeed, the displayed area of the map is adjusted according to thepositioning data of the mobile device with the corresponding useridentification representing the mobile device fixed on a specificlocation on the user interface. Given that the position of the useridentification is locked on the user interface, the displayed area ofthe map is therefore adjusted without changing the display position ofthe user identification, thereby improving the display effect of themap.

FIG. 6 is a block diagram of an exemplary mobile device 600 thatdisplays geographic information in accordance with some embodiments. Insome implementations, mobile device 600 includes one or more processors180, memory 120 for storing programs and instructions for execution byone or more processors 180, one or more communications interfaces suchas input/output interface 130 and 140, and network interface (e.g., 110and 170), and one or more communications buses 610 for interconnectingthese components.

In some embodiments, input/output interface 130 and 140 includes adisplay and input devices such as a keyboard, a mouse or a track-pad. Insome embodiments, communication buses 610 include circuitry (sometimescalled a chipset) that interconnects and controls communications betweensystem components. In some embodiments, memory 120 includes high-speedrandom access memory, such as DRAM, SRAM, DDR RAM or other random accesssolid state memory devices; and optionally includes non-volatile memory,such as one or more magnetic disk storage devices, optical disk storagedevices, flash memory devices, or other non-volatile solid state storagedevices. In some embodiments, memory 120 includes one or more storagedevices remotely located from the one or more processors 180. In someembodiments, memory 120, or alternatively the non-volatile memorydevice(s) within memory 120, includes a non-transitory computer readablestorage medium.

In some embodiments, memory 120 or alternatively the non-transitorycomputer readable storage medium of memory 120 stores the followingprograms, modules and data structures, instructions, or a subsetthereof:

-   -   Operating System 601 that includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   I/O module 602 that includes procedures for handling various        basic input and output functions through one or more input and        output devices;    -   Communication module 603 that is used for connecting mobile        device 600 to other machines (e.g., another mobile device        associated with user B in FIGS. 4A and 4B) or servers via one or        more wired or wireless network communication interfaces (e.g.,        110 and 170) and one or more communication networks, such as the        Internet, other wide area networks, local area networks,        metropolitan area networks, and so on;    -   User Interface module 604 that creates and updates a user        interface to display information related to and receive user        inputs from various software applications (e.g., a social media        application, an instant messaging application or a GPS        application);    -   Instant Messaging Application 605 that is configured to allow        two or more users to exchange messages on the real time over the        Internet; and    -   Geographic Information display module 500 that obtains        geographic location information of one or more users at one or        more instants, marks the locations of the one or more users on a        map that is displayed on the user interface, and updates the        displayed map according to the geographic location variations of        the one or more users, wherein a user identification associated        with a user of the mobile device including module 500 is fixed        at a specific location on the user interface.

In some embodiments, geographic information display module 500 is aplug-in module that is embedded in instant messaging application 605.

As such, various embodiments of the present application provide a mobiledevice that is configured to display geographic location information ofone or more mobile devices on a map whose displayed area on the userinterface is adjustable according to the geographic locationinformation. Specifically, in some embodiments, a mobile device 600includes: an RF (Radio Frequency) communication unit 110, a storage 120including one or more computer readable storage media, an input unit130, a display unit 140, sensors 150, an audio circuit 160, a wirelesscommunication unit 170, a processor 180 including one or more processingcores, a power supply 190 and the like. It should be understood that theexemplary structure of mobile device 600 does not constitute alimitation of the mobile device. A mobile device optionally includesmore or fewer parts than mobile device 600, and some parts could becombined. Different arrangement of parts could also be adopted asneeded.

The RF communication unit 110 may be used for receiving and sending asignal during the course of communicating information, and particularlymay be used for sending downlink information of a base station to one ormore processors 180 for processing after receiving the downlinkinformation, and sending uplink data to the base station. Generally, theRF communication unit 110 comprises, but not limited to, an antenna, atleast one amplifier, a tuner, one or more oscillators, an SIM(Subscriber Identity Module) card, a transceiver, a coupler, an LNA (LowNoise Amplifier), a duplexer and the like. Furthermore, the RFcommunication unit 110 also can communicate with other equipment bywireless communication and the network. The wireless communication maybe used with any one of communication standards or protocols whichinclude, but not limited to, GSM (Global System of MobileCommunication), a GPRS (General Packet Radio Service), CDMA (CodeDivision Multiple Access), WCDMA (Wideband Code Division MultipleAccess), LTE (Long Term Evolution), E-mail, an SMS (Short MessagingService) and the like.

The storage 120 (also called memory 120) may be used for storingsoftware programs and software modules. The processor 180 executesvarious functional applications and data processing by running thesoftware programs and the software modules, which are stored in thestorage 120. The storage 120 may mainly comprise a program storageregion and a data storage region, wherein the program storage region maybe used for storing operating systems, applications required by at leastone function (such as a sound play function, an image play functionetc.) and the like; and the data storage region may be used for storingdata (such as audio data, a telephone book etc.) and the like which arecreated in use of mobile device 600. Furthermore, the storage 120 mayinclude a high speed RAM (Random Access Memory) and may also include anon-volatile memory such as disk storage device, flash memory device orother volatile solid storage devices. Correspondingly, the storage 120also may include a storage controller for providing access from theprocessor 180 and the input unit 130 to the storage 120.

The input unit 130 may be used for receiving input number or characterinformation and generating signal input related to the user's settingand functional control, from keyboard, mouse, operating rod, optical ortrackball. Particularly, the input unit 130 may comprise a touchsensitive surface 131 and other input equipment 132. The touch sensitivesurface 131 is also called a touch display screen or a touch controlpanel and may be used for detecting touch operations (for example,operations carried out by the user by using any suitable objects orattachments, such as a finger, a touch pen and the like, on the touchsensitive surface 131 or near the touch sensitive surface 131) by theuser on the touch sensitive surface or near the touch sensitive surfaceand driving corresponding apparatus connected therewith according to apreset program. Optionally, the touch sensitive surface 131 may comprisea touch detection apparatus and a touch controller. Wherein, the touchdetection apparatus may be used for detecting the touch direction of theuser, detecting a signal caused by the touch operation and transmittingthe signal to the touch controller. The touch controller may be used forreceiving the touch information from the touch detection apparatus,converting the touch information into contact coordinates and thensending the contact coordinates to the processor 180 and may alsoreceive a command sent by the processor 180 and execute the command.Moreover, the touch sensitive surface 131 may be implemented in varioustypes such as a resistance type, a capacitance type, an infrared type, asurface acoustic wave type and the like. In addition to the touchsensitive surface 131, the input unit 130 may also include other inputequipment 132. Specifically, other input equipments 132 may include, butnot limited to, one or more of physical keyboard, virtual (function) key(such as volume control key, switching key and the like), trackball,mouse, operating rod and the like.

The display unit 140 may be used for displaying information input by theuser or information provided for the user and various graphic userinterfaces of mobile device 600, and the graphic user interfaces may beformed by graphs, texts, icons, videos and any combination thereof. Thedisplay unit 140 may include a display panel 141. Optionally, thedisplay panel 141 may be configured in forms of an LCD (Liquid CrystalDisplay), an OLED (Organic Light-Emitting Diode) and the like.Furthermore, the touch sensitive surface 131 may cover the display panel141. When the touch sensitive surface 131 detects a touch operation onor near the touch sensitive surface 131, the signal caused by the touchoperation is transmitted to the processor 180 to determine the type of atouch event. Then the processor 180 provides a corresponding visualoutput on the display panel 141 according to the type of the touchevent. In FIG. 6, the touch sensitive surface 131 and the display panel141 are used as two independent parts for accomplishing input and outputfunctions, however, in certain embodiments, the touch sensitive surface131 and the display panel 141 may be integrated to accomplish the inputand output functions.

Mobile device 600 may also include at least one sensor 150, such aslight sensors, motion sensors and other sensors. Specifically, theoptical sensors may include an ambient light sensor and a proximitysensor. The ambient light sensor may regulate the brightness of thedisplay panel 141 according to the lightness of the ambient light. Theproximity sensor may shut down the display panel 141 and/or backlightwhen mobile device 600 is moved to the position near an ear. As one ofthe motion sensors, the gravity acceleration sensor may detect themagnitude of an acceleration in each of the directions (generally, threedirections or three axes), and may detect the magnitude and thedirection of gravity in a stationary state, which may be used forposture identifying functions (such as switching between a horizontalscreen and a vertical screen, switching related to a game, andcalibration on the posture of a magnetometer), vibration identifyingfunctions (such as for pedometer and striking) and the like, in themobile device. Furthermore, a gyroscope, a barometer, a humidity meter,a thermometer, an infrared sensor and other sensors may be integratedinto mobile device 600, to which explanation is not repeated herein.

The audio circuit 160, a speaker 161 and a microphone 162 may provide anaudio interface between the user and mobile device 600. The audiocircuit 660 may transmit an electric signal obtained by convertingreceived audio data to the speaker 161, and the electric signal isconverted into a sound signal to be output by the speaker 161. On theother hand, the microphone 162 converts a collected sound signal into anelectric signal, the audio circuit 160 receives the electric signal andconverts the electric signal into audio data. After the audio data isoutput to the processor 180 and is processed, the audio data is sent toanother mobile phone through the RF communication unit 110, or the audiodata is output to the storage 120 in order to be further processed. Theaudio circuit 160 may also comprise an earphone jack for providing thecommunication between an external headset and mobile device 600.

By the wireless communication unit 170, mobile device 600 may help theuser to receive and send emails, browse web pages, access streamingmedia and the like. The wireless communication unit 170 provideswireless broadband internet access for the user.

The processor 180 is a control center of mobile device 600, is connectedwith all the parts of the whole mobile device by various interfaces andlines and is used for executing various functions of mobile device 600and processing the data by operating the software programs and/or themodules stored in the storage 120, and calling the data stored in thestorage 120 so as to carry out integral monitoring on the mobile device.Optionally, the processor 180 may comprise one or more processing cores.Preferably, an application processor and a modulation-demodulationprocessor may be integrated into the processor 180, wherein theapplication processor is mainly used for the operating system, the userinterface, applications and the like, and the modulation-demodulationprocessor is mainly used for wireless communication. It should beunderstood that the modulation-demodulation processor also may be notintegrated into the processor 180.

Mobile device 600 also includes the power supply 190 (such as a battery)for supplying power to each part. Preferably, the power supply may belogically connected with the processor 180 by a power supply managementsystem so as to implement functions of charge management, dischargemanagement, power consumption management and the like by the powersupply management system. The power supply 190 may also include anycomponents such as one or more DC (Direct Current) or AC (AlternatingCurrent) power supplies, recharging systems, power supply faultdetection circuits, power supply converters or inverters, power supplystate indicators and the like.

Mobile device 600 may also include a camera, a Bluetooth module and thelike although they are not shown in the figure, and explanations forthem are not repeated herein. Specifically, In some embodiments, thedisplay unit of the mobile device is a touch screen display.

The mobile device further comprises a storage and one or more programs,wherein the one or more programs are stored in the storage and areconfigured to be executed by the one or more processors, includinginstructions used for performing the following operations of:

-   -   obtaining the positioning time and the positioning data of each        positioning period of the mobile device;    -   calculating the average speed between the positioning time of        the previous positioning period and the positioning time of the        current positioning period according to the positioning time and        the positioning data of the previous positioning period as well        as the positioning time and the positioning data of the current        positioning period;    -   adjusting the displayed area of the map according to the        positioning data of the mobile device when the average speed is        greater than a threshold speed, so as to keep the display        position of corresponding user identification of the mobile        device on the user interface unchanged; and    -   displaying the adjusted map on the user interface.

In some embodiments, the one or more programs stored in the storagefurther includes instructions for executing the following operations of:

-   -   positioning the mobile device every positioning period to obtain        the positioning data of each positioning period of the mobile        device, wherein the positioning data comprises the longitude        data and the latitude data; and    -   recording the positioning time at which the mobile device is        positioned.

In some embodiments, the one or more programs stored in the storagefurther includes instructions for executing the following operations of:

-   -   calculating the displacement of the mobile device according to        the positioning data of the current positioning period and the        positioning data of the previous positioning period;    -   calculating the time difference between the positioning time of        the current positioning period and the positioning time of the        previous positioning period; and    -   calculating the average speed between the positioning time of        the previous positioning period and the positioning time of the        current positioning period of the mobile device according to the        displacement and the time difference.

In some embodiments, the one or more programs stored in the storagefurther includes instructions for executing the following operations of:

-   -   determining whether the user identification is displayed on the        user interface;    -   adjusting the map displayed area according to the positioning        data of the mobile device when it is determined that the user        identification is displayed on the user interface.

In some embodiments, the one or more programs stored in the storagefurther includes instructions for executing the following operations of:

-   -   detecting whether the user is performing the operation for        determining the map information to be displayed; and    -   performing the step of adjusting the map displayed area        according to the positioning data of the mobile device when        detecting that the user is not performing the operation for        determining the map information to be displayed.

In some embodiments, the one or more programs stored in the storagefurther includes instructions for executing the following operations of:

-   -   calculating the coordinate offset value of corresponding user        identification of the mobile device on the user interface        according to the current positioning data and the last        positioning data of the mobile device;    -   calculating the coordinate value of the position of the central        point of the map displayed area to be displayed according to the        coordinate value of the position of the central point of the        current map displayed area and the coordinate offset value; and    -   taking the central point of the map displayed area to be        displayed as a benchmark, moving the current map displayed area        according to the coordinate offset value until the position        coordinates of the central point of the displayed area to be        displayed coincide with the position coordinates of the central        point of the current map displayed area to obtain the adjusted        map displayed area.

In accordance with various embodiments of the present application,mobile device 600 obtains the positioning time and the positioning dataof each positioning period of the mobile device, and thereby calculatesthe average speed between the positioning time of the previouspositioning period (i.e., a previous instant) and the positioning timeof the current positioning period (i.e., a current instant). And whenthe average speed is greater than the threshold speed, the displayedarea of the map is adjusted according to the positioning data of themobile device with the corresponding user identification representingthe mobile device fixed on a specific location on the user interface.Given that the position of the user identification is locked on the userinterface, the displayed area of the map is therefore adjusted withoutchanging the display position of the user identification, therebyimproving the display effect of the map.

Another aspect of the application is a non-transitory computer-readablemedium, having instructions stored thereon, which when executed by oneor more processors cause the processors to perform operations toimplement the above methods for displaying geographic information on auser interface of the mobile device. The computer readable storagemedium stores one or more programs which are used by the one or moreprocessors for executing the method for display the map information, andthe method comprises:

-   -   obtaining the positioning time and the positioning data of each        positioning period of the mobile device;    -   calculating the average speed between the positioning time of        the previous positioning period and the positioning time of the        current positioning period according to the positioning time and        the positioning data of the previous positioning period as well        as the positioning time and the positioning data of the current        positioning period;    -   adjusting the displayed area of the map according to the        positioning data of the mobile device when the average speed is        greater than a threshold speed, so as to keep the display        position of corresponding user identification of the mobile        device on the user interface unchanged; and    -   displaying the adjusted map on the user interface.

In some embodiments, the one or more programs stored in the storagefurther includes instructions for executing the following operations of:

-   -   positioning the mobile device every positioning period to obtain        the positioning data of each positioning period of the mobile        device, wherein the positioning data comprises the longitude        data and the latitude data; and    -   recording the positioning time at which the mobile device is        positioned.

In some embodiments, the one or more programs stored in the storagefurther includes instructions for executing the following operations of:

-   -   calculating the displacement of the mobile device according to        the positioning data of the current positioning period and the        positioning data of the previous positioning period;    -   calculating the time difference between the positioning time of        the current positioning period and the positioning time of the        previous positioning period; and    -   calculating the average speed between the positioning time of        the previous positioning period and the positioning time of the        current positioning period of the mobile device according to the        displacement and the time difference.

In some embodiments, the one or more programs stored in the storagefurther includes instructions for executing the following operations of:

-   -   determining whether the user identification is displayed on the        user interface;    -   adjusting the map displayed area according to the positioning        data of the mobile device when it is determined that the user        identification is displayed on the user interface.

In some embodiments, the one or more programs stored in the storagefurther includes instructions for executing the following operations of:

-   -   detecting whether the user is performing the operation for        determining the map information to be displayed; and    -   performing the step of adjusting the map displayed area        according to the positioning data of the mobile device when        detecting that the user is not performing the operation for        determining the map information to be displayed.

In some embodiments, the one or more programs stored in the storagefurther includes instructions for executing the following operations of:

-   -   calculating the coordinate offset value of corresponding user        identification of the mobile device on the user interface        according to the current positioning data and the last        positioning data of the mobile device;    -   calculating the coordinate value of the position of the central        point of the map displayed area to be displayed according to the        coordinate value of the position of the central point of the        current map displayed area and the coordinate offset value; and    -   taking the central point of the map displayed area to be        displayed as a benchmark, moving the current map displayed area        according to the coordinate offset value until the position        coordinates of the central point of the displayed area to be        displayed coincide with the position coordinates of the central        point of the current map displayed area to obtain the adjusted        map displayed area.

In accordance with various embodiments of the present application,mobile device 600 obtains the positioning time and the positioning dataof each positioning period of the mobile device, and thereby calculatesthe average speed between the positioning time of the previouspositioning period (i.e., a previous instant) and the positioning timeof the current positioning period (i.e., a current instant). And whenthe average speed is greater than the threshold speed, the displayedarea of the map is adjusted according to the positioning data of themobile device with the corresponding user identification representingthe mobile device fixed on a specific location on the user interface.Given that the position of the user identification is locked on the userinterface, the displayed area of the map is therefore adjusted withoutchanging the display position of the user identification, therebyimproving the display effect of the map.

It should be noted that the apparatus for displaying the map informationprovided by the above embodiment is divided, for example, into theforegoing functional modules, when displaying the map information. Inpractical application, the function may be distributed to beaccomplished by different functional modules as required, that is, theinternal structure of the equipment is divided into different functionalmodules to accomplish all or part of the functions mentioned above.Moreover, the apparatus and method for displaying the map informationprovided by the above embodiment are covered by the same conception. Thespecific implementation thereof is described in detailed in theembodiment of the method, and will not be repeated herein.

The sequence number of the above embodiments of the application is onlydescriptive and does not represent merits of the embodiments.

It is understood by those ordinary skilled in the art that theimplementation of all or part of the process of the above-describedembodiment of the method can be accomplished by hardware or relevanthardware under instruction of a program that may be stored in a computerreadable storage medium. The above-mentioned storage medium may be aread only memory (ROM), a magnetic disk or an optical disk, etc.

The present application has been described with reference to preferredembodiments which are not intended to limit the invention, and anymodification, equivalent, improvement and the like made within thespirit and principle of the invention should fall in the protectionscope thereof.

FIG. 7 is a flow chart of an exemplary geographic information displaymethod 700 that displays geographic information in an instant messagingapplication in accordance with some embodiments. Method 700 is,optionally, governed by instructions that are stored in a non-transitorycomputer readable storage medium and that are executed by one or moreprocessors of a mobile device (e.g., a global positioning system (GPS)device, a smart phone, a personal digital assistant (PDA), a tablet anda laptop computer). Each of the operations shown in FIG. 7 maycorrespond to instructions stored in a computer memory or non-transitorycomputer readable storage medium. The computer readable storage mediummay include a magnetic or optical disk storage device, solid statestorage devices such as Flash memory, or other non-volatile memorydevice or devices. The instructions stored on the computer readablestorage medium may include one or more of: source code, assemblylanguage code, object code, or other instruction format that isinterpreted by one or more processors. Some operations in method 700 maybe combined and/or the order of some operations may be changed.

Geographic information display method 700 is implemented by a firstmobile device that executes a social media application (e.g., an instantmessaging application). While executing the instant messagingapplication, the first mobile device obtains (702) first geographiclocation information of the first mobile device associated with a firstuser, second geographic location information of a second mobile deviceassociated with a second user, and a first timestamp at which both thefirst and second geographic location information is recorded;

Then, the first mobile device displays (704) a map associated with thefirst timestamp The map includes a first mark corresponding to the firstmobile device at a first location defined by the first geographiclocation information and a second mark corresponding to the secondmobile device at a second location defined by the second geographiclocation information, respectively. Instant messages are exchangedbetween the first and second users are displayed on the map adjacent tothe first and second marks, respectively.

After displaying the map associated with the first timestamp, the firstmobile device obtains (706) updated geographic location information ofthe first mobile device and the second mobile device, and a secondtimestamp at which the updated geographic location information isrecorded.

The first mobile device then updates (708) the displayed map on the userinterface to reflect variations of the geographic locations of the firstand second mobile devices. The first mark corresponding to the firstmobile device is at a fixed location on the user interface, and thesecond mark corresponding to the second mobile device is updated on thedisplayed map according to the updated geographic location informationof the second mobile device.

In some implementations, the first mobile device calculates an averagespeed of the first mobile device based on the first geographic locationinformation, the updated geographic location information of the firstmobile device, the first timestamp, and the second timestamps. Inaccordance with a determination that the average speed is higher than athreshold speed, the mobile device determines whether the first user ofthe first mobile device is browsing the displayed map. The first user isbrowsing the displayed map for various purposes, e.g., previewing aroute and looking for a destination.

In some situations, the displayed map is updated on the user interfaceof the first mobile device in accordance with a determination that thefirst user is not browsing the displayed map. Specifically, in someembodiments, it is determined that the user of the mobile device isbrowsing the displayed map when the first geographic position of themobile device is not marked on the displayed map. In some embodiments,in accordance with a determination that the user is browsing thedisplayed map, the mobile device forgoes updating the displayed map andthe geographic location of the second mobile device on the userinterface

Alternatively, in some other situations, the displayed map is updated(e.g., zoomed out) to display both the geographic location of the firstmobile device and interested area the first user is browsing, and thefirst mark associated with the geographic location of the first mobiledevice is still fixed on a specific location on the user interface.

In some embodiments, the first and second timestamps are associated witha time separation, and the time separation is selected from a groupconsisting of: 1.5 seconds, 1 second, 0.5 second and 0.2 second.Therefore, in some implementations, the mobile device regularly obtainsthe geographic location information of the first and second mobiledevices, and every two consecutive timestamps associated with thegeographic location information have the time separation. More detailson obtaining the geographic location information and updating thedisplayed map are explained above with reference to FIGS. 1 and 2.

In some embodiments, it is determined that the user of the mobile deviceis not browsing the displayed map when the user has not enabled any useraction on the displayed map within a predetermined period of time withrespect to the second timestamp.

In some embodiments, the first and second geographic locationinformation includes GPS coordinates where the first and second mobiledevices are located at the first timestamp, respectively, and the GPScoordinates are measured by a respective internal GPS embedded in thefirst and second mobile devices.

In some embodiments, the first geographic location information includeslatitude and longitude values associated with the first location of thefirst client device, and the second geographic location informationincludes latitude and longitude values associated with the secondlocation of the second client device.

In some embodiments, the updated map is displayed on the user interfacewith an identical zoom level of the map displayed in association withthe first timestamp.

In some embodiments, the average speed of the mobile device iscalculated by dividing a distance between the first geographic locationand the updated geographic location information of the first mobiledevice by a time variation of the first and second timestamps. Further,in some embodiments, the distance between the first and secondgeographic locations is calculated from the first and second geographiclocation information in a spherical coordinate system. In someembodiments, updating the displayed map on the user interface includescalculating the geographic location information of a central point ofthe user interface in association with the first and second timestamps,respectively.

In some embodiments, instant messages exchanged between the first andsecond users include at least one of a voice message, a text message, apicture, a video clip, an information link and the like. When a voicemessage is exchanged, a voice message sign is displayed adjacent to amark representing a sender of the voice message. A receiver of the voicemessage clicks on the voice message sign on the displayed map to listento the voice message.

It should be understood that the particular order in which theoperations in FIG. 7 have been described are merely exemplary and arenot intended to indicate that the described order is the only order inwhich the operations could be performed. One of ordinary skill in theart would recognize various ways to displaying the geographicinformation of the mobile device as described herein. Additionally, itshould be noted that details of other processes described elsewhere withrespect to methods 100 and 200 (e.g., FIGS. 1 and 2) are also applicablein an analogous manner to method 700 described above with respect toFIG. 7. For brevity, these details are not repeated here.

While particular embodiments are described above, it will be understoodit is not intended to limit the invention to these particularembodiments. On the contrary, the invention includes alternatives,modifications and equivalents that are within the spirit and scope ofthe appended claims. Numerous specific details are set forth in order toprovide a thorough understanding of the subject matter presented herein.But it will be apparent to one of ordinary skill in the art that thesubject matter may be practiced without these specific details. In otherinstances, well-known methods, procedures, components, and circuits havenot been described in detail so as not to unnecessarily obscure aspectsof the embodiments.

Although the terms first, second, etc. may be used herein to describevarious elements, these elements should not be limited by these terms.These terms are only used to distinguish one element from another. Forexample, first ranking criteria could be termed second ranking criteria,and, similarly, second ranking criteria could be termed first rankingcriteria, without departing from the scope of the present application.First ranking criteria and second ranking criteria are both rankingcriteria, but they are not the same ranking criteria.

The terminology used in the description of the invention herein is forthe purpose of describing particular embodiments only and is notintended to be limiting of the invention. As used in the description ofthe invention and the appended claims, the singular forms “a,” “an,” and“the” are intended to include the plural forms as well, unless thecontext clearly indicates otherwise. It will also be understood that theterm “and/or” as used herein refers to and encompasses any and allpossible combinations of one or more of the associated listed items. Itwill be further understood that the terms “includes,” “including,”“comprises,” and/or “comprising,” when used in this specification,specify the presence of stated features, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, operations, elements, components, and/or groups thereof.

As used herein, the term “if” may be construed to mean “when” or “upon”or “in response to determining” or “in accordance with a determination”or “in response to detecting,” that a stated condition precedent istrue, depending on the context. Similarly, the phrase “if it isdetermined [that a stated condition precedent is true]” or “if [a statedcondition precedent is true]” or “when [a stated condition precedent istrue]” may be construed to mean “upon determining” or “in response todetermining” or “in accordance with a determination” or “upon detecting”or “in response to detecting” that the stated condition precedent istrue, depending on the context.

Although some of the various drawings illustrate a number of logicalstages in a particular order, stages that are not order dependent may bereordered and other stages may be combined or broken out. While somereordering or other groupings are specifically mentioned, others will beobvious to those of ordinary skill in the art and so do not present anexhaustive list of alternatives. Moreover, it should be recognized thatthe stages could be implemented in hardware, firmware, software or anycombination thereof.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific implementations. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theimplementations were chosen and described in order to best explainprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious implementations with various modifications as are suited to theparticular use contemplated. Implementations include alternatives,modifications and equivalents that are within the spirit and scope ofthe appended claims. Numerous specific details are set forth in order toprovide a thorough understanding of the subject matter presented herein.But it will be apparent to one of ordinary skill in the art that thesubject matter may be practiced without these specific details. In otherinstances, well-known methods, procedures, components, and circuits havenot been described in detail so as not to unnecessarily obscure aspectsof the implementations.

What is claimed is:
 1. A geographic information display method performedat a first mobile device having one or more processors and memorystoring programs for execution by the processors, the method comprising:while executing an instant messaging application: obtaining firstgeographic location information of the first mobile device associatedwith a first user, second geographic location information of a secondmobile device associated with a second user, and a first timestamp atwhich both the first and second geographic location information isrecorded; displaying an interactive map corresponding to the firsttimestamp on a display of the first mobile device, wherein theinteractive map includes a first mark representing the first mobiledevice at a first location defined by the first geographic locationinformation and a second mark representing the second mobile device at asecond location defined by the second geographic location information,respectively; rendering a first user message from the first user on theinteractive map adjacent to the first mark and a second user messagefrom the second user adjacent to the second mark, respectively;obtaining updated first geographic location information of the firstmobile device and updated second geographic location information of thesecond mobile device, and a second timestamp at which both the updatedfirst and second geographic location information is recorded;determining an average speed of the first mobile device based on thefirst geographic location information and the updated first geographiclocation information of the first mobile device; and in accordance withthe average speed is greater than a threshold speed: determining a fixedlocation of the first mark on the interactive map; and while keeping thefirst mark representing the first mobile device and the first usermessage at the fixed position of the display of the first mobile device,updating the interactive map based on the updated first geographiclocation information of the first mobile device, including updating thesecond mark representing the second mobile device and the second usermessage on the updated interactive map from the second location to a newlocation according to the updated second geographic location informationof the second mobile device.
 2. The method of claim 1, wherein the firstand second timestamps are associated with a time separation, and thetime separation is selected from a group consisting of: 1.5 seconds, 1second, 0.5 second and 0.2 second.
 3. The method of claim 1, wherein thefirst and second geographic location information includes GPScoordinates where the first and second mobile devices are located at thefirst timestamp, respectively, and the GPS coordinates are measured by arespective internal GPS embedded in the first and second mobile devices.4. The method of claim 1, wherein the first geographic locationinformation includes latitude and longitude values associated with thefirst location of the first mobile device, and the second geographiclocation information includes latitude and longitude values associatedwith the second location of the second mobile device.
 5. The method ofclaim 1, wherein the interactive map remains at the same resolutionlevel from the first timestamp to the second timestamp.
 6. The method ofclaim 1, wherein the first user message is a text message and the seconduser message is a voice message.
 7. The method of claim 6, wherein thevoice message is played in response to a user selection of the voicemessage on the interactive map to listen to the voice message.
 8. Themethod of claim 1, wherein the second user message includes a voicemessage, and a voice message sign representing the second user messageis displayed and updated on the interactive map with the second mark,further comprising: in accordance with a determination that the firstmobile device is during navigation, enabling play of the second usermessage automatically while displaying and updating the second usermessage on the interactive map.
 9. A first mobile device, comprising:one or more processors; memory; and a plurality of instructions storedin the memory that, when executed by the one or more processors, causethe processors to perform operations including: while executing aninstant messaging application: obtaining first geographic locationinformation of the first mobile device associated with a first user,second geographic location information of a second mobile deviceassociated with a second user, and a first timestamp at which both thefirst and second geographic location information is recorded; displayingan interactive map corresponding to the first timestamp on a display ofthe first mobile device, wherein the interactive map includes a firstmark representing the first mobile device at a first location defined bythe first geographic location information and a second mark representingthe second mobile device at a second location defined by the secondgeographic location information, respectively; rendering a first usermessage from the first user on the interactive map adjacent to the firstmark and a second user message from the second user adjacent to thesecond mark, respectively; obtaining updated first geographic locationinformation of the first mobile device and updated second geographiclocation information of the second mobile device, and a second timestampat which both the updated first and second geographic locationinformation is recorded; determining an average speed of the firstmobile device based on the first geographic location information and theupdated first geographic location information of the first mobiledevice; and in accordance with the average speed is greater than athreshold speed: determining a fixed location of the first mark on theinteractive map; and while keeping the first mark representing the firstmobile device and the first user message at the fixed position of thedisplay of the first mobile device, updating the interactive map basedon the updated first geographic location information of the first mobiledevice, including updating the second mark representing the secondmobile device and the second user message on the updated interactive mapfrom the second location to a new location according to the updatedsecond geographic location information of the second mobile device. 10.The mobile device of claim 9, wherein the first and second timestampsare associated with a time separation, and the time separation isselected from a group consisting of: 1.5 seconds, 1 second, 0.5 secondand 0.2 second.
 11. The mobile device of claim 9, wherein the first andsecond geographic location information includes GPS coordinates wherethe first and second mobile devices are located at the first timestamp,respectively, and the GPS coordinates are measured by a respectiveinternal GPS embedded in the first and second mobile devices.
 12. Themobile device of claim 9, wherein the first geographic locationinformation includes latitude and longitude values associated with thefirst location of the first mobile device, and the second geographiclocation information includes latitude and longitude values associatedwith the second location of the second mobile device.
 13. The mobiledevice of claim 9, wherein the interactive map remains at the sameresolution level from the first timestamp to the second timestamp. 14.The mobile device of claim 9, wherein the first user message is a textmessage and the second user message is a voice message.
 15. The mobiledevice of claim 14, wherein the voice message is played in response to auser selection of the voice message on the interactive map to listen tothe voice message.
 16. A non-transitory computer-readable storagemedium, having instructions stored thereon that, when executed by one ormore processors of a first mobile device, cause the processors toperform operations including: while executing an instant messagingapplication: obtaining first geographic location information of thefirst mobile device associated with a first user, second geographiclocation information of a second mobile device associated with a seconduser, and a first timestamp at which both the first and secondgeographic location information is recorded; displaying an interactivemap corresponding to the first timestamp on a display of the firstmobile device, wherein the interactive map includes a first markrepresenting the first mobile device at a first location defined by thefirst geographic location information and a second mark representing thesecond mobile device at a second location defined by the secondgeographic location information, respectively; rendering a first usermessage from the first user on the interactive map adjacent to the firstmark and a second user message from the second user adjacent to thesecond mark, respectively; obtaining updated first geographic locationinformation of the first mobile device and updated second geographiclocation information of the second mobile device, and a second timestampat which both the updated first and second geographic locationinformation is recorded; determining an average speed of the firstmobile device based on the first geographic location information and theupdated first geographic location information of the first mobiledevice; and in accordance with the average speed is greater than athreshold speed: determining a fixed location of the first mark on theinteractive map; and while keeping the first mark representing the firstmobile device and the first user message at the fixed position of thedisplay of the first mobile device, updating the interactive map basedon the updated first geographic location information of the first mobiledevice, including updating the second mark representing the secondmobile device and the second user message on the updated interactive mapfrom the second location to a new location according to the updatedsecond geographic location information of the second mobile device. 17.The non-transitory computer-readable storage medium of claim 16, whereinthe first and second timestamps are associated with a time separation,and the time separation is selected from a group consisting of: 1.5seconds, 1 second, 0.5 second and 0.2 second.
 18. The non-transitorycomputer-readable storage medium of claim 16, wherein the first andsecond geographic location information includes GPS coordinates wherethe first and second mobile devices are located at the first timestamp,respectively, and the GPS coordinates are measured by a respectiveinternal GPS embedded in the first and second mobile devices.
 19. Thenon-transitory computer-readable storage medium of claim 16, wherein thefirst geographic location information includes latitude and longitudevalues associated with the first location of the first mobile device,and the second geographic location information includes latitude andlongitude values associated with the second location of the secondmobile device.
 20. The non-transitory computer-readable storage mediumof claim 16, wherein the interactive map remains at the same resolutionlevel from the first timestamp to the second timestamp.